/**
 * com.monte.observer.PublicEventAgent.java
 * create by FengMy from 2013
 */
package com.monte.observer;

/**
 * @描述:公共事件代理
 * @author FengMy
 * @since 2013-3-18
 */
public interface PublicEventAgent {
	/**
	 * 触发事件
	 * @param event
	 */
	void fireEvent(Event event);
	/**
	 * 订阅事件(同步)
	 * @param event 事件
	 */
	void subscribeEvent(Class<? extends Event> event,EventHandler handler);
	/**
	 * 订阅事件
	 * @param event 事件
	 * @param asynchronous 是否异步处理事件
	 */
	void subscribeEvent(Class<? extends Event> event,EventHandler handler,Boolean asynchronous);
	
}
